using System;
using System.Collections.Generic;
using MongoDB.Bson;

namespace CQRS.Events
{
    public interface IEventProvider<TEvent> where TEvent : Event
    {
        void Clear();
        void LoadFromHistory(IList<TEvent> domainEvents);
        void UpdateVersion(int version);
        ObjectId Id { get; }
        Guid EventProviderId { get; }
        int Version { get; }
        IEnumerable<TEvent> GetChanges();
    }
}